// function mySettimeout(fn, t) {
//   let timer = null;
//   function interval() {
//     fn();
//     timer = setTimeout(interval, t);
//   }
//   interval();
//   return {
//     cancel: () => {
//       clearTimeout(timer)
//     }
//   }
// }
// let a = mySettimeout(() => {
//   console.log(111);
// }, 1000)

// let b=mySettimeout(() => {
//   console.log(222)
// }, 1000)

function setTimeout1(fn, time) {
  let timeout;
  function demo() {
    fn();
    timeout = setTimeout(demo, time);
  }
  demo();
  return {
    cancel: () => {
      clearTimeout(timeout);
    },
  };
}
let tiemr = setTimeout1(() => {
  console.log(111);
}, 1000);
tiemr.cancel();

//定时器转setTimeout

// const mySetTimeout = (fn, time) => {
//   const timer = setInterval(() => {
//     clearInterval(timer);
//     fn();
//   }, time);
// };
// // mySetTimeout(()=>{
// //   console.log(1);
// // },1000)

function instrrr(fn, time) {
  let time1 = setInterval(() => {
    fn();
    clearInterval(time1);
  }, time);
}
instrrr(() => {
  console.log(111);
}, 1000);
